package annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface NewAnnotation {
    //注解的参数    参数类型 + 参数名();
    String name() default "I";
    int age() default 0;
    int id() default -1;//默认值为-1，代表不存在
    String[] schools() default {"Lby工作室","北京大学"};
}

class Test {

    //注解可以显示赋值，如果没有默认值，我们就必须给注解赋值
    @NewAnnotation(name = "Lby")
    public void run() {

    }

    //注解定义只有一个参数，参数名为value时，注解使用时，默认值可以不写
    @defalutA("")
    public void walk() {

    }
}

@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface defalutA {
    String value();
}